package main

import (
	"fmt"
	"math/rand"
	"sort"
)

func main() {

	//作业2：有一个数组 [1,4,9,16,2,5,10,15]，生成一个新切片，要求新切片元素是数组相邻2项的和。

	var a = []int{1, 4, 9, 16, 2, 5, 10, 15}
	fmt.Println(len(a))

	b := make([]int, 0, 7)

	//用c方式遍历
	for i := 0; i < len(a)-1; i++ {
		if i+1 < len(a) {
			b = append(b, a[i]+a[i+1])
		}
	}
	fmt.Println(b)

	//、作业3：数字重复统计
	// 随机产生100个整数
	// 数字的范围[-100, 100]
	// 降序输出这些生成的数字并打印其重复的次数

	randnumber := 100

	var c = make([]int, 0, randnumber)
	for i := 0; i < cap(c); i++ {
		c = append(c, rand.Intn(201)-100)
	}

	//fmt.Println(c)
	sort.Sort(sort.Reverse(sort.IntSlice(c)))
	fmt.Println(c)

	var d = make(map[int]int, randnumber)
	for _, key := range c {
		d[key] = d[key] + 1
	}

	for key, v := range d {
		fmt.Printf("%d 重复 %d 次\n", key, v)
	}
}
